我自己覺得這篇跟leadership比較沒有關係,感覺蠻適合給正在尋找下階段目標(但不一定要換工作)的developer來看。特別是已經在同家公司待一陣子,對於工作上的事物已經得心應手的人,可以藉機思考一下你還可以帶來哪些貢獻。
演講核心主旨就是:You can do beyond developer。
講者利用歷史帶入敏捷開發宣言(Agile Manifesto)進而介紹整個演講的主題:舊時代的工程師是specialist,但現在的工程師可以做很多事beyond developer。因為我們同時扮演著許多角色:
以下是對於這些角色的簡單敘述。
作為工程師,你學習語言、學習使用函式庫(library)、關注工具發展、學習工具鏈(toolchain)、學習貢獻給community。
作為團隊leader,你學習了解流程、定義成員的角色、與大家合作(無論是team內還是team外)、保持團隊的健康程度。為了保持團隊的健康程度,作為一個leader你的核心責任就是團隊永續性(sustainability),要做到這點就必須要考慮到大家的身心狀況,利用同理心去理解每個人的想法。
作為產品開發者,你必須要去理解產品目標、更加了解這個領域、了解你的利益關係人(stakeholder),想辦法利用這些才能貢獻在這個產品上。
這裡講者問了個非常有趣的小問題:我們在開發寫log的時候,要怎麼判斷是要記成warning還是error?講者的回答是:如果你不介意早上四點起床被叫起來看這個error message的話。(我後來發現還真的有個stack overflow的答案是這個XD)他想表達的是,作為產品開發者,你必須要看到更大的scope,因為你的粗心大易或考慮不慎是可能會造成別人的麻煩,所以你要以更寬廣的視角看你做的產品而不只是關注在你做的任務上。
作為平台上的開發者(註一),你會從impact別人變成influence別人(註二)。由此你必須要知道在上線之前的的流程(post-production),要思考怎麼減少產品從製作到產品上線中間的交付時間(lead time),而不單只是考慮部屬流程(deployment)。此外你也要想到為了運行成本,包含on-call、包含修問題的成本。再來就是要考慮到自動化的價值,因為不是所有自動化的價值,只該自動化重複性高且無趣的事情。
作為部門裡的開發者,你必須要知道有知道更多的背景知識,以便做出對於team來說最好的決策。再者就是你也需要勇於分享知識給其他的team,這很有可能可以幫助到別的team,也能幫助到自己。
作為一個組織裡的開發者,你可以先問問自己這個問題:我對於在擁有某個核心價值的這個組織裡工作感到自豪嗎?你必須要去理解與認同組織的核心價值,並嘗試去體現他。就像是會聽到Spotify的員工自豪在Spotify工作並為世界帶來價值。再來就是你必須在乎公司的名聲,因為公司跟你其實是互利共生的生態,你做的事會影響到公司,而公司做的也會影響到你。另外一點就是嘗試對外分享知識。而作為這樣子的角色,你所有對外的言詞,也都將成為公司對外的宣傳。
講了很多內容,但總而言之講者想表達的就是,身為developer你其實可以做很多事情beyond developer。而且如果你的目標是要走的遠,那就必須要大家齊心協力一起向前邁進,自己一個人是不夠的。
If you want to go fast, go alone.
If you want to go far, go together.
註一:這個平台指的是你的產品是一個平台,有點像是PaaS(Platform as a Service)的意思。
註二:Impact是指你做的事情後果會直接強制的影響到別人,而 influence指的是潛移默化間接的影響到或改變別人(見解釋)
自己覺得整篇真的講的蠻多的東西,有蠻多學習的點,特別是小故事的地方有些讓人印象深刻。不過我自己覺得整個演講有點冗長(對我來說啦),也比較難抓到想表達的重點XD。特別是主旨部分,用了歷史去帶入本文核心概念,但因為太長所以自己有點lost XD。另一方面也因為講的很精簡,所以很多地方我其實沒有很get到講者想講的點,就變成我要自己腦補。在分門別類的部份,我自己覺得像product跟platform其實分的就不太好,我自己是沒有感受很深這兩個差異在哪,因為platform那邊講的點我覺得product其實就都有提到了,抽象化來說我覺得兩者基本上是一樣的。
以下分享幾個我看到喜歡或特別有感觸的點:
這位講者Dan North似乎是Behaviour Driven Development(BDD)的提倡者,之前在寫Ruby的時候有看到RSpec這個東西大概有看了一下,有興趣的讀者可以自己看講者的blog研究研究。